from pyecharts import options as opts
from pyecharts.charts import Bar

# 创建一个 Bar 实例
bar = Bar()

# 添加 x 轴数据
bar.add_xaxis(["A", "B", "C", "D"])

# 添加 y 轴数据，每个系列的数据需要归一化
bar.add_yaxis("Series 1", [10, 20, 30, 40], stack="stack1")
bar.add_yaxis("Series 2", [20, 30, 40, 50], stack="stack1")
bar.add_yaxis("Series 3", [70, 50, 30, 10], stack="stack1")

# 设置全局配置项
bar.set_global_opts(
    title_opts=opts.TitleOpts(title="堆叠柱状图的归一化图"),
    legend_opts=opts.LegendOpts(),
    toolbox_opts=opts.ToolboxOpts(),
)

# 使用 normalize 参数进行归一化
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=True), normalize=False)

# 渲染图表并保存为 HTML 文件
bar.render("stacked_bar_normalized.html")